/*
 * User: user
 * Date: 10/12/2007
 * Time: 12:44:50
 */
package javax.webbeans;

import javax.webbeans.inwork.MissingDocumentation;
import java.lang.annotation.Annotation;

public interface Context {

    @MissingDocumentation
    Class<Annotation> getScopeType();

    /**
     @param manager The Web Beans container.
     @param bean    The component to be retrieved.
     @param create  Indicates whether a new component instance should be created.
     @return
     */
    @MissingDocumentation
    <T> T get(Manager manager, Bean<T> bean, boolean create);

    /**
     Destroys the current instance of a component.
     Disassociating the component instance from the context.

     @param manager The Web Beans container.
     @param bean    The component to be destroyed.
     */
    <T> void remove(Manager manager, Bean<T> bean);
}